Access exportiert lange ganzzahlige Zahlen als double-Datentyp mit Dezimalstellen im dBase IV-Format (.dbf)

Ursprüngliche KB-Nummer: 891775

Symptome

Wenn Sie eine Microsoft Office Access-Tabelle erstellen, die lange ganzzahlige Zahlen enthält, und sie dann als Typ dBase IV (.dbf) exportieren, werden die Zahlen in den Double-Datentyp konvertiert und zeigen Dezimalstellen an.

Sie können beispielsweise die folgende Tabelle exportieren:

EINHEITEN
23411
111111111
1121212

Wenn Sie dann die Daten in dBase IV importieren und anzeigen, werden die Daten wie folgt angezeigt:

EINHEITEN
23411.00000
111111111.00000
1121212.00000

Hinweis

Wenn Sie ein Zahlenfeld in einer Tabelle in Access erstellen, verwenden Sie die FieldSize-Eigenschaft, um den Platz zu steuern, der einem bestimmten Feld zugeordnet wird. Für Zahlenfelder können Sie einen der folgenden numerischen Typen aus einer Liste auswählen:

  • Byte
  • Ganze Zahl
  • Long Integer
  • Einzel
  • Gleitkommawert mit doppelter Genauigkeit
  • ReplicationID
  • Dezimal

Standardmäßig ist die Einstellung für Zahlenfelder Long Integer. Der Long Integer-Wert speichert ganze Zahlen im Bereich von etwa -2 Milliarden bis +2 Milliarden. Alternativ können Sie den Double-Wert auswählen, um Zahlen mit Dezimalstellen zu speichern.

Ursache

Dieses Problem tritt auf, weil in dBase kein Integer-Datentyp vorhanden ist. dBase verwendet entweder den Datentyp Numeric oder Float. Access ordnet lange ganze Zahlen dem Datentyp Numeric in dBase zu.

Problemumgehung

Verwenden Sie eine der folgenden Methoden, um dieses Problem zu umgehen:

Methode 1: Ändern der Datenbankdatei in dBase

Ändern Sie den Entwurf der Datenbankdatei, nachdem sie dem dBase-Katalog hinzugefügt wurde. Legen Sie beispielsweise die Spalte Dec auf 0 (null) fest. Weitere Informationen zum Entwerfen von Datenbankdateien in dBase finden Sie in der dBase-Dokumentation.

Methode 2: Verwenden von Microsoft Office Excel zum Formatieren der Daten

Verwenden Sie Excel, um die Daten in der exportierten Tabelle zu formatieren. Gehen Sie dazu wie folgt vor:

  1. Öffnen Sie in Excel die Tabelle, die Sie als Typ dBase IV (*.dbf) aus Access exportiert haben.
  2. Formatieren Sie die Zellen, die nicht ordnungsgemäß formatiert sind. Wählen Sie dazu die Zellen aus, und klicken Sie dann im Menü Format auf Zellen.
  3. Nachdem Sie die Zellen formatiert haben, exportieren Sie das Arbeitsblatt als dBase IV-Datei. Gehen Sie dazu wie folgt vor:
    1. Klicken Sie im Menü Datei auf Speichern unter.
    2. Klicken Sie im Feld Dateityp auf DBF 4 (dbase IV) (*.dbf) und dann auf Speichern.

Methode 3: Verwenden von Beispielcode zum Formatieren der Daten

Die Verwendung der hier aufgeführten Informationen, Makro- oder Programmcodes geschieht auf Ihre eigene Verantwortung. Microsoft stellt Ihnen diese Informationen sowie Makro- und Programmlistings ohne Gewähr auf Richtigkeit, Vollständigkeit und/oder Funktionsfähigkeit sowie ohne Anspruch auf Support zur Verfügung. Die zur Verfügung gestellten Makro- und Programmierungsbeispiele sollen lediglich exemplarisch die Funktionsweise des Beispiels aufzeigen. Die Mitarbeiter der Microsoft Product Support Services erklären Ihnen gerne die Funktionsweise einer bestimmten Prozedur. Die Mitarbeiter werden diese Beispiele jedoch weder modifizieren, um zusätzliche Funktionalität zu schaffen, noch Prozeduren entwickeln, die auf Ihre spezifischen Bedürfnisse zugeschnitten sind.

Sie können das folgende Codebeispiel verwenden, um den Prozess der Formatierung der Daten zu automatisieren. Im Beispiel wird eine Tabelle als Textdatei gespeichert. Anschließend wird Excel automatisiert, um die Textdatei zu öffnen und dann im dBase IV-Format zu speichern.

Hinweis

Sie müssen die Dateinamen in diesem Codebeispiel so ändern, dass sie ihren Dateinamen entsprechen.

Sub exportFormat()

    Dim xlApp       As Excel.Application
    Dim xlBook      As Excel.Workbook

    Const SAVETEXT = "C:\testValues.txt"
    Const SAVEDBF = "C:\testDBF.dbf"

    ' Save the table as a text file.
    DoCmd.TransferText acExportDelim, , "Table1", SAVETEXT, TRUE

    ' Set a reference to the Application object.
    Set xlApp =        ' Set a reference to the Workbook object.
    Set xlBook = xlApp.Workbooks.Open(SAVETEXT, , ,        ' Save the file to dBase IV format.
    xlBook.SaveAs Filename:=SAVEDBF, FileFormat:=xlDBF4
    xlBook.Close savechanges:=False

    xlApp.Quit
    Set xlBook = Nothing
    Set xlApp = Nothing

End Sub